#pragma once

#include "BaseSystem.h"
#include "OgrePrerequisites.h"
#include "SdlEmulationLayer.h"


#include <SDL.h>
#include <QWidget.h>

namespace OgreModel
{
	class MouseListener;
	class KeyboardListener;
	class JoystickListener;

	class InputHandler
	{
	public:
		InputHandler(QWidget* pWidMain,
			MouseListener *mouseListener,
			KeyboardListener *keyboardListener,
			JoystickListener *joystickListener);
		~InputHandler();
		void HandleEvents();
	private:
		BaseSystem          *mGraphicsSystem;
		BaseSystem          *mLogicSystem;
		MouseListener       *mMouseListener;
		KeyboardListener    *mKeyboardListener;
		QWidget*				m_pWidgetMain;
		std::map<int, bool> m_vEvt;
	};
}

